package find_demo

func KthElement(a []int, b []int, k int) int {
	// 创建一个等于两个数组大小的容器
	al := len(a)
	bl := len(b)
	dl := al + bl
	d := make([]int, dl)
	// 三个数组的初始索引
	ai, bi, di := 0, 0, 0
	// 进行合并
	for ai < al && bi < bl {
		if a[ai] < b[bi] {
			d[di] = a[ai]
			di++
			ai++
		} else {
			d[di] = b[bi]
			di++
			bi++
		}
	}
	for ai < al {
		d[di] = a[ai]
		di++
		ai++
	}
	for bi < bl {
		d[di] = b[bi]
		di++
		bi++
	}
	return d[num2TypIdx(k)]
}

// num2TypIdx num转索引
func num2TypIdx(num int) int {
	return num - 1
}
